home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / coding / pump_src / rotblura.asm < prev    next >
Assembly Source File  |  1995-10-26  |  1KB  |  59 lines

  1.  
  2.         .386
  3.         .MODEL FLAT
  4.         LOCALS @@
  5.  
  6.         DATASEG
  7.  
  8.         PUBLIC _RB_Dx, _RB_Dy
  9. _RB_Dx DD 0
  10. _RB_Dy DD 0
  11.  
  12. ix DD 0
  13. iy DD 0
  14.  
  15.         CODESEG
  16.  
  17. ;extern void RB_DoRaster(byte *dest, const byte *org, const byte (*table)[256],
  18. ;                        sint32 sx, sint32 sy);
  19. ;#pragma aux RB_DoRaster parm [EDI] [ESI] [EBX] [EDX] [ECX]
  20. PUBLIC RB_DoRaster_
  21. RB_DoRaster_:
  22.         PUSH    EBP
  23.         
  24.         ADD     EDX,256 SHL 16
  25.         ADD     ECX,256 SHL 16
  26.  
  27.         SHL     EDX,16-9
  28.         SHL     ECX,16-9
  29.         MOV     EAX,[_RB_Dx]
  30.         SHL     EAX,16-9
  31.         MOV     [ix],EAX
  32.         MOV     EAX,[_RB_Dy]
  33.         SHL     EAX,16-9
  34.         MOV     [iy],EAX
  35.         MOV     EBP,EDX         ; Free EDX
  36.         XOR     EDX,EDX
  37.  
  38.         i = 0
  39.         REPT 320
  40.                 MOV     EAX,ECX
  41.                 SHR     EAX,32-9        ; Higher bits of sy
  42.                 ADD     ECX,[iy]
  43.                 SHLD    EAX,EBP,9       ; Higher bits of sx
  44.                 ADD     EBP,[ix]
  45.                 MOV     DH,[ESI+EAX]
  46.                 MOV     DL,[EDI+i]
  47.                 MOV     DL,[EBX+EDX]
  48.                 MOV     [EDI+i],DL
  49.                 i = i + 1
  50.         ENDM
  51.  
  52.         POP     EBP
  53.         RET
  54.  
  55.  
  56.  
  57. END
  58.  
  59.